package events

import "BookStack/pkg/utils"

// 自定义页面相关的事件类型常量
const (
	PageCreatedEventType   = "page.created"    // 页面创建事件
	PageUpdatedEventType   = "page.updated"    // 页面更新事件
	PageDeletedEventType   = "page.deleted"    // 页面删除事件
	PageStatusSetEventType = "page.status.set" // 页面状态设置事件
)

// PageCreatedEvent 页面创建事件
type PageCreatedEvent struct {
	ID        uint           `json:"id"`
	Title     string         `json:"title"`
	Slug      string         `json:"slug"`
	Status    int            `json:"status"`
	CreatedBy uint           `json:"created_by"`
	CreatedAt utils.JSONTime `json:"created_at"`
}

// PageUpdatedEvent 页面更新事件
type PageUpdatedEvent struct {
	ID        uint           `json:"id"`
	Title     string         `json:"title"`
	Slug      string         `json:"slug"`
	Status    int            `json:"status"`
	UpdatedBy uint           `json:"updated_by"`
	UpdatedAt utils.JSONTime `json:"updated_at"`
}

// PageDeletedEvent 页面删除事件
type PageDeletedEvent struct {
	ID        uint           `json:"id"`
	Title     string         `json:"title"`
	Slug      string         `json:"slug"`
	DeletedBy uint           `json:"deleted_by"`
	DeletedAt utils.JSONTime `json:"deleted_at"`
}

// PageStatusSetEvent 页面状态设置事件
type PageStatusSetEvent struct {
	ID        uint           `json:"id"`
	Status    int            `json:"status"`
	UpdatedBy uint           `json:"updated_by"`
	UpdatedAt utils.JSONTime `json:"updated_at"`
}
